package com.xying.service;

import com.xying.common.ServerResponse;
import com.xying.pojo.Usr;

/**
 * Created by Hisen on 2017/11/8.
 */
public interface UsrService {
  /**
   * 封装用户信息
   * @param usr
   * @return
   */
  ServerResponse getPersonalInfo(Usr usr);

  /**
   * 登录状态下修改用户信息
   * @param usr
   * @return
   */
  ServerResponse savePersonalInfo(Usr usr);

  /**
   * 用户登录
   * @param username
   * @param password
   * @return
   */
  ServerResponse login(String username, String password);

  /**
   * 用户注册
   * @param usr
   * @return
   */
  ServerResponse register(Usr usr);

  /**
   * 管理员登录
   * @param username
   * @param password
   * @return
   */
  ServerResponse adminLogin(String username, String password);

  /**
   * 校验用户管理权限
   * @param usr
   * @return
   */
  ServerResponse<Usr> checkAdmin(Usr usr);

  /**
   * 获取全部用户
   * @return
   * @param pageNum
   * @param pageSize
   */
  ServerResponse listAllUsr(Integer pageNum, Integer pageSize);

  /**
   * 修改或更新用户信息
   * @param user
   * @return
   */
  ServerResponse updateUsrInfo(Usr user);

  /**
   * 删除指定用户
   * @param idNo
   * @return
   */
  ServerResponse deleteUser(String idNo);

  /**
   * 通过用户名搜索
   * @param userName
   * @param pageNum
   * @param pageSize
   * @return
   */
  ServerResponse searchUserName(String userName, Integer pageNum, Integer pageSize);

  /**
   * 修改密码
   * @param idNo
   * @param oldPassword
   * @param newPassword
   * @return
   */
  ServerResponse updatePassword(String idNo, String oldPassword, String newPassword);

  /**
   * 用户登录MD5直接校验
   * @param userName
   * @param password
   * @return
   */
  ServerResponse loginMD5(String userName, String password);

  /**
   * 校验用户名
   * @param username
   * @return
   */
  ServerResponse checkUsername(String username);
}
